# $@  表示目标文件
# $^  表示所有的依赖文件
# $<  表示第一个依赖文件
# $?  表示比目标还要新的依赖文件列表

require=tmp/bianhuan.o tmp/find.o tmp/process.o tmp/squares.o tmp/foo.o
opencv_lib = -I /usr/include/opencv/ -L /usr/lib -lm `pkg-config opencv --cflags --libs`
head = -I /usr/include/opencv


bin/sr:src/sr.cpp $(require) src/sr.h
	g++ -g $< $(require) -o $@ $(opencv_lib)

bin/alg:src/alg.cpp
	g++ -g $< $(opencv_lib) -o $@ 

bin/ts:src/ts.cpp $(require) src/foo.h
	g++ -g $< $(require) -o $@ $(opencv_lib)

tmp/bianhuan.o:src/bianhuan.cpp src/sr.h
	g++ -c $< -g -o $@ $(opencv_lib)

tmp/find.o:src/find.cpp src/sr.h
	g++ -c $< -g -o $@ $(opencv_lib)

tmp/process.o:src/process.cpp src/sr.h
	g++ -c $< -g -o $@ $(opencv_lib)
tmp/squares.o:src/squares.cpp src/sr.h
	g++ -c $< -g -o $@ $(opencv_lib)

tmp/foo.o:src/foo.cpp src/foo.h
	g++ -c $< -g -o $@ $(head)

clean:
	rm *.o
